package com.hundsun.s3.mrs.core.handler;

import com.hundsun.s3.mrs.core.IParamsIn;
import com.hundsun.s3.mrs.core.IParamsOut;
import com.hundsun.s3.mrs.core.chain.IChain;
import com.hundsun.s3.mrs.core.message.Message;
import com.hundsun.s3.mrs.core.task.DefTask;
import com.hundsun.s3.mrs.core.task.Task;
import com.hundsun.s3.mrs.core.type.TaskType;

public class SrTaskHandler implements IHandler {

	@Override
	public void doHandle(IParamsIn in, IParamsOut out, IChain chain) {
		if(!(in instanceof Task)) {
			throw new RuntimeException("当前任务链的入参不是一个任务类型");
		}
		if(in instanceof DefTask) {
			// 如果是系统提供的默认任务类
			DefTask task = (DefTask) in;
			Message message = task.getMessage();
			if(!message.getTaskType().equals(TaskType.TASK_SR)) {
				chain.doHandle(in, out, chain);
			}
			System.out.println("SrTaskHandle处理任务");
			chain.setIndex(0);
		}
	}

}
